﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GestionadorBaseDatos;
using System.Collections;

namespace CRUD.InterfaceDAO
{
    /// <summary>
    /// Interface que define el comportamiento de la clase MantenimientoPago
    /// </summary>
    public interface IDaoMantenimientoPago: IGenericDAO<MantenimientoPago,int>
    {
        /// <summary>
        /// Obtiene todos los mantenimientos de pago
        /// </summary>
        /// <returns>Retorna una lista generica de objetos</returns>
        IList GetAll();
        
        /// <summary>
        /// Inserta un mantenimiento de un pago
        /// </summary>
        /// <param name="crear">Objeto de tipo MantenimientoPago</param>
        void Insert(MantenimientoPago crear);
        
        /// <summary>
        /// Obtiene todos los mantenimientos dado un pago en especifico
        /// </summary>
        /// <param name="pago">Objeto de tipo Pago</param>
        /// <returns>Retorna una lista generica de objetos</returns>
        IList GetMantenimientosPagoByPago(Pago pago);
        
        /// <summary>
        /// Obtiene todos los mantenimientos de los pagos de un usuario en especifico
        /// </summary>
        /// <param name="usuario">Objeto de tipo Usuario</param>
        /// <returns>Retorna una lista generica de objetos</returns>
        IList GetMantenimientosPagoByUsuario(Usuario usuario);
    }
}
